<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Cheetah Software: SimulatorSyncronizedMessage Struct Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Cheetah Software
   &#160;<span id="projectnumber">1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="../../namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="../../annotated.html"><span>Classes</span></a></li>
      <li><a href="../../files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="../../search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="../../annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="../../classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="../../inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="../../functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('d4/d34/struct_simulator_syncronized_message.html','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../d1/dd3/struct_simulator_syncronized_message-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SimulatorSyncronizedMessage Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="../../closed.png" alt="+"/> Inheritance diagram for SimulatorSyncronizedMessage:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../dd/d06/struct_simulator_syncronized_message__inherit__graph.png" border="0" usemap="#_simulator_syncronized_message_inherit__map" alt="Inheritance graph"/></div>
<map name="_simulator_syncronized_message_inherit__map" id="_simulator_syncronized_message_inherit__map">
</map>
</div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="../../closed.png" alt="+"/> Collaboration diagram for SimulatorSyncronizedMessage:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../da/db9/struct_simulator_syncronized_message__coll__graph.png" border="0" usemap="#_simulator_syncronized_message_coll__map" alt="Collaboration graph"/></div>
<map name="_simulator_syncronized_message_coll__map" id="_simulator_syncronized_message_coll__map">
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1adc39cf228474e33c79e8ae37239315"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a1adc39cf228474e33c79e8ae37239315">init</a> ()</td></tr>
<tr class="separator:a1adc39cf228474e33c79e8ae37239315"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd0e4d7babb326e99b1e9f4cd118573b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#abd0e4d7babb326e99b1e9f4cd118573b">waitForSimulator</a> ()</td></tr>
<tr class="separator:abd0e4d7babb326e99b1e9f4cd118573b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb666808ca9df77c69d84407c2baa96c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#acb666808ca9df77c69d84407c2baa96c">simulatorIsDone</a> ()</td></tr>
<tr class="separator:acb666808ca9df77c69d84407c2baa96c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae7f2fa43eb9f58e26117651129e92ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#aae7f2fa43eb9f58e26117651129e92ed">waitForRobot</a> ()</td></tr>
<tr class="separator:aae7f2fa43eb9f58e26117651129e92ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a657ef58ba50ee56f2622fa05c8c8fbe4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a657ef58ba50ee56f2622fa05c8c8fbe4">tryWaitForRobot</a> ()</td></tr>
<tr class="separator:a657ef58ba50ee56f2622fa05c8c8fbe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a2b2054a629d1618485a797a310175d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a9a2b2054a629d1618485a797a310175d">waitForRobotWithTimeout</a> ()</td></tr>
<tr class="separator:a9a2b2054a629d1618485a797a310175d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a744e0ac58f399eb3ef7bfbbfe5f634e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a744e0ac58f399eb3ef7bfbbfe5f634e5">robotIsDone</a> ()</td></tr>
<tr class="separator:a744e0ac58f399eb3ef7bfbbfe5f634e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a673037c1192f41ee07abc8a17f76c84d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d41/class_shared_memory_semaphore.html">SharedMemorySemaphore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a></td></tr>
<tr class="separator:a673037c1192f41ee07abc8a17f76c84d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6be6cb1388072625892bbc18ae48e02b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d41/class_shared_memory_semaphore.html">SharedMemorySemaphore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">simToRobotSemaphore</a></td></tr>
<tr class="separator:a6be6cb1388072625892bbc18ae48e02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_struct_simulator_message"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_struct_simulator_message')"><img src="../../closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="../../d6/d14/struct_simulator_message.html">SimulatorMessage</a></td></tr>
<tr class="memitem:ac4fef0a30db058d4f91c4d5b3f28f602 inherit pub_attribs_struct_simulator_message"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../df/dc1/struct_robot_to_simulator_message.html">RobotToSimulatorMessage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d14/struct_simulator_message.html#ac4fef0a30db058d4f91c4d5b3f28f602">robotToSim</a></td></tr>
<tr class="separator:ac4fef0a30db058d4f91c4d5b3f28f602 inherit pub_attribs_struct_simulator_message"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c4ebf7ff7c846946acca89df2c1d289 inherit pub_attribs_struct_simulator_message"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/d43/struct_simulator_to_robot_message.html">SimulatorToRobotMessage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d14/struct_simulator_message.html#a1c4ebf7ff7c846946acca89df2c1d289">simToRobot</a></td></tr>
<tr class="separator:a1c4ebf7ff7c846946acca89df2c1d289 inherit pub_attribs_struct_simulator_message"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A <a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html">SimulatorSyncronizedMessage</a> is stored in shared memory and is accessed by both the simulator and the robot The simulator and robot take turns have exclusive access to the entire message. The intended sequence is:</p><ul>
<li>robot: <a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#abd0e4d7babb326e99b1e9f4cd118573b">waitForSimulator()</a></li>
<li>simulator: <em>simulates robot</em> (simulator can read/write, robot cannot do anything)</li>
<li>simulator: simDone()</li>
<li>simulator: <a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#aae7f2fa43eb9f58e26117651129e92ed">waitForRobot()</a></li>
<li>robot: <em>runs controller</em> (robot can read/write, simulator cannot do anything)</li>
<li>robot: robotDone();</li>
<li>robot: <a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#abd0e4d7babb326e99b1e9f4cd118573b">waitForSimulator()</a> ... </li>
</ul>

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00087">87</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1adc39cf228474e33c79e8ae37239315"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SimulatorSyncronizedMessage::init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The <a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html#a1adc39cf228474e33c79e8ae37239315">init()</a> method should only be called <em>after</em> shared memory is connected! </p>

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00091">91</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;              {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#acb002c7dce852e4548ee4b8a32e67b97">init</a>(0);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">simToRobotSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#acb002c7dce852e4548ee4b8a32e67b97">init</a>(0);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  }</div><div class="ttc" id="class_shared_memory_semaphore_html_acb002c7dce852e4548ee4b8a32e67b97"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#acb002c7dce852e4548ee4b8a32e67b97">SharedMemorySemaphore::init</a></div><div class="ttdeci">void init(unsigned int value)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00039">SharedMemory.h:39</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a6be6cb1388072625892bbc18ae48e02b"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">SimulatorSyncronizedMessage::simToRobotSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore simToRobotSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a673037c1192f41ee07abc8a17f76c84d"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">SimulatorSyncronizedMessage::robotToSimSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore robotToSimSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a744e0ac58f399eb3ef7bfbbfe5f634e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SimulatorSyncronizedMessage::robotIsDone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00108">108</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;{ <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#afb9099d74c7a7162f90ea7ae7c036b65">increment</a>(); }</div><div class="ttc" id="class_shared_memory_semaphore_html_afb9099d74c7a7162f90ea7ae7c036b65"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#afb9099d74c7a7162f90ea7ae7c036b65">SharedMemorySemaphore::increment</a></div><div class="ttdeci">void increment()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00053">SharedMemory.h:53</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a673037c1192f41ee07abc8a17f76c84d"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">SimulatorSyncronizedMessage::robotToSimSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore robotToSimSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="acb666808ca9df77c69d84407c2baa96c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SimulatorSyncronizedMessage::simulatorIsDone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00098">98</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{ <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">simToRobotSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#afb9099d74c7a7162f90ea7ae7c036b65">increment</a>(); }</div><div class="ttc" id="class_shared_memory_semaphore_html_afb9099d74c7a7162f90ea7ae7c036b65"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#afb9099d74c7a7162f90ea7ae7c036b65">SharedMemorySemaphore::increment</a></div><div class="ttdeci">void increment()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00053">SharedMemory.h:53</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a6be6cb1388072625892bbc18ae48e02b"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">SimulatorSyncronizedMessage::simToRobotSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore simToRobotSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a657ef58ba50ee56f2622fa05c8c8fbe4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool SimulatorSyncronizedMessage::tryWaitForRobot </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00102">102</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#a1320f7671180868cccce16df1894f5d7">tryDecrement</a>(); }</div><div class="ttc" id="struct_simulator_syncronized_message_html_a673037c1192f41ee07abc8a17f76c84d"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">SimulatorSyncronizedMessage::robotToSimSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore robotToSimSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
<div class="ttc" id="class_shared_memory_semaphore_html_a1320f7671180868cccce16df1894f5d7"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#a1320f7671180868cccce16df1894f5d7">SharedMemorySemaphore::tryDecrement</a></div><div class="ttdeci">bool tryDecrement()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00066">SharedMemory.h:66</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="aae7f2fa43eb9f58e26117651129e92ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SimulatorSyncronizedMessage::waitForRobot </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00100">100</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;{ <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#a92848ad136712dbfd7ce309e1ac472d9">decrement</a>(); }</div><div class="ttc" id="class_shared_memory_semaphore_html_a92848ad136712dbfd7ce309e1ac472d9"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#a92848ad136712dbfd7ce309e1ac472d9">SharedMemorySemaphore::decrement</a></div><div class="ttdeci">void decrement()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00059">SharedMemory.h:59</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a673037c1192f41ee07abc8a17f76c84d"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">SimulatorSyncronizedMessage::robotToSimSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore robotToSimSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a9a2b2054a629d1618485a797a310175d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool SimulatorSyncronizedMessage::waitForRobotWithTimeout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00104">104</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                                 {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">robotToSimSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#ad2eb2442863ed4831fb1cce64d30f177">decrementTimeout</a>(1, 0);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  }</div><div class="ttc" id="struct_simulator_syncronized_message_html_a673037c1192f41ee07abc8a17f76c84d"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a673037c1192f41ee07abc8a17f76c84d">SimulatorSyncronizedMessage::robotToSimSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore robotToSimSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
<div class="ttc" id="class_shared_memory_semaphore_html_ad2eb2442863ed4831fb1cce64d30f177"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#ad2eb2442863ed4831fb1cce64d30f177">SharedMemorySemaphore::decrementTimeout</a></div><div class="ttdeci">bool decrementTimeout(u64 seconds, u64 nanoseconds)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00072">SharedMemory.h:72</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="abd0e4d7babb326e99b1e9f4cd118573b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SimulatorSyncronizedMessage::waitForSimulator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00096">96</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;{ <a class="code" href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">simToRobotSemaphore</a>.<a class="code" href="../../db/d41/class_shared_memory_semaphore.html#a92848ad136712dbfd7ce309e1ac472d9">decrement</a>(); }</div><div class="ttc" id="class_shared_memory_semaphore_html_a92848ad136712dbfd7ce309e1ac472d9"><div class="ttname"><a href="../../db/d41/class_shared_memory_semaphore.html#a92848ad136712dbfd7ce309e1ac472d9">SharedMemorySemaphore::decrement</a></div><div class="ttdeci">void decrement()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/dac/_shared_memory_8h_source.html#l00059">SharedMemory.h:59</a></div></div>
<div class="ttc" id="struct_simulator_syncronized_message_html_a6be6cb1388072625892bbc18ae48e02b"><div class="ttname"><a href="../../d4/d34/struct_simulator_syncronized_message.html#a6be6cb1388072625892bbc18ae48e02b">SimulatorSyncronizedMessage::simToRobotSemaphore</a></div><div class="ttdeci">SharedMemorySemaphore simToRobotSemaphore</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db1/_simulator_message_8h_source.html#l00111">SimulatorMessage.h:111</a></div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a673037c1192f41ee07abc8a17f76c84d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../db/d41/class_shared_memory_semaphore.html">SharedMemorySemaphore</a> SimulatorSyncronizedMessage::robotToSimSemaphore</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00111">111</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6be6cb1388072625892bbc18ae48e02b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../db/d41/class_shared_memory_semaphore.html">SharedMemorySemaphore</a> SimulatorSyncronizedMessage::simToRobotSemaphore</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d1/db1/_simulator_message_8h_source.html#l00111">111</a> of file <a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="../../d1/db1/_simulator_message_8h_source.html">SimulatorMessage.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="../../d4/d34/struct_simulator_syncronized_message.html">SimulatorSyncronizedMessage</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
